package likouJava;

public class 跳跃游戏 {

//    //正向贪心
//    public boolean canJump(int[] nums) {
//        int maxReach = 0;
//        for (int i = 0; i < nums.length; i++) {
//            if (i > maxReach) return false;
//
//            maxReach = Math.max(maxReach, i + nums[i]);
//
//            if (maxReach >= nums.length - 1) return true;
//        }
//        return true;
//    }

        //反向贪心
    public boolean canJump(int[] nums) {
        int n = nums.length;;
        int g = n - 1; //目标值

        for (int i = n - 2; i >= 0 ; i--) {
            if (i + nums[i] >= g){
                g = i;
            }
        }
        return g == 0;
    }
}
